import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @description： 平均消费消息模型  默认情况下，RabbitMQ将按顺序将每个消息发送给下一个使用者，
 * 平均而言，每个消费者都会受到相同数量的消息，这种分发消息的方式成为循环
 * 关闭自动确认消息并开启手动确认消息 能者多劳，能力大的可以处理的任务多 不仅仅是平均分配
 * @Author MRyan
 * @Date 2020/11/8 14:53
 * @Version 1.0
 */
public class Providers {

    public static void main(String[] args) throws IOException, TimeoutException {
        //获取连接对象
        Connection connection = RabbitMqUtil.getConnection("192.168.43.78", 5672, "/ems", "ems", "123");
        //获取通道对象
        Channel channel = connection.createChannel();
        //通过通道声明队列
        channel.queueDeclare("work", true, false, false, null);

        for (int i = 1; i <= 21; i++) {
            //生产消息
            channel.basicPublish("",
                    "work",
                    MessageProperties.PERSISTENT_TEXT_PLAIN,
                    (i+ " +hello workqueue").getBytes());
        }

        RabbitMqUtil.close(connection, channel);

    }
}
